package club.gskj.gulimall.search.vo;

import club.gskj.common.to.es.SkuEsModel;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName SearchResponse
 * @Description 封装了检索的所有数据返回前台
 * @Author 康纳
 * @Date 2021-02-28
 */
@Data
public class SearchResult {

    /**
     * 查询的所有商品信息
     */
    private List<SkuEsModel> products;

    /**
     * 页码
     */
    private Integer pageNum;

    /**
     * 总记录数
     */
    private Long total;

    /***
     *  总页码
     */
    private Integer totalPages;
    /**
     * 分页数集合
     */
    private List<Integer> pageNavs;

    /***
     *  当前查询所涉及到的所有商品信息
     */
    private List<BrandVo> brandVos;

    /***
     *
     *  当前查询所涉及到的所有属性信息
     */
    private List<AttrVo> attrVos;

    /***
     *
     *  当前查询所涉及到的所有分类信息
     */
    private List<catelogVo> catelogVos;

    /**================以上为返回前台json数据的所有信息===================================*/

    /**
     * 封装面包屑导航
     */
    private List<NavVo> navs = new ArrayList<>();
    // 保存已经筛选过的 attrId
    private List<Long> attrIds = new ArrayList<>();

    @Data
    public static class NavVo {
        private String navName;
        private String navValue;
        private String link;
    }

    /***
     *  静态内部类，保存所有商品信息
     */
    @Data
    public static class BrandVo {

        private Long brandId;

        private String brandName;

        private String logo;
    }

    /***
     *  静态内部类，保存所有属性信息
     */
    @Data
    public static class AttrVo {

        private Long attrId;

        private String attrName;

        private List<String> attrValue;
    }

    /***
     *  静态内部类，保存所有分类信息
     */
    @Data
    public static class catelogVo {
        private Long catelogId;

        private String catelogName;
    }


}
